#pragma once

#include "MBVec3.h"
#include "MBCameraViewFrustum.h"

/**
  *	An MBAxisAlignedBoundingBox is a conventional axis aligned bounding box
  * that is defined with two points in 3D space. The first point is the
  * min-point, the second point is the max-point.
  */
class MBAxisAlignedBoundingBox
{
public:
	MBAxisAlignedBoundingBox( const MBVec3 &min, const MBVec3 &max );
	bool IsIntersectingWithCameraViewFrustum( const MBCameraViewFrustum &frustum ) const;
	bool IsPointInside( const MBVec3 &point ) const;

	const MBVec3 &GetMax( void ) const;
	const MBVec3 &GetMin( void ) const;

private:
	/** Min-point of the axis aligned bounding box in 3D space */
	MBVec3 mMin;
	/** Max-point of the axis aligned bounding box in 3D space */
	MBVec3 mMax;
};